package cn.bdqn.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 补货单实体类
 * @author dkj
 */
public class Replenish implements Serializable {

    /**
     * id
     */
    private Integer id;

    /**
     * 用户id
     */
    private Integer clientId;

    /**
     * 客户对象
     */
    private Client client;

    /**
     * 发货单id
     */
    private Integer sendFreightId;

    /**
     * 发货单对象
     */
    private SendFreight sendFreight;

    /**
     * 补单单号
     */
    private String replenishNumber;

    /**
     * 付款类型  1.线上  2.线下
     */
    private Integer paymentType;

    /**
     * 补货单表述
     */
    private String replenishDescribe;

    /**
     *发货时间
     */
    private Date departTime;

    /**
     * 预计送达时间
     */
    private Date predictDeliveryTime;

    /**
     * 实际送达时间
     */
    private Date practicalDeliveryTime;

    /**
     * 运费总金额
     */
    private BigDecimal freightSum;

    /**
     * 补货单状态  1.出库2.未出库
     */
    private Integer replenishState;

    /**
     * 1.配送中 2.已完成
     */
    private Integer transportState;

    /**
     * 补货配货货物集合
     */
    private List<ReplenishEquip> replenishEquips = new ArrayList<>();


    public Integer getClientId() {
        return clientId;
    }

    public void setClientId(Integer clientId) {
        this.clientId = clientId;
    }

    public Integer getSendFreightId() {
        return sendFreightId;
    }

    public void setSendFreightId(Integer sendFreightId) {
        this.sendFreightId = sendFreightId;
    }

    public List<ReplenishEquip> getReplenishEquips() {
        return replenishEquips;
    }

    public void setReplenishEquips(List<ReplenishEquip> replenishEquips) {
        this.replenishEquips = replenishEquips;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Client getClient() {
        return client;
    }

    public void setClient(Client client) {
        this.client = client;
    }

    public SendFreight getSendFreight() {
        return sendFreight;
    }

    public void setSendFreight(SendFreight sendFreight) {
        this.sendFreight = sendFreight;
    }

    public String getReplenishNumber() {
        return replenishNumber;
    }

    public void setReplenishNumber(String replenishNumber) {
        this.replenishNumber = replenishNumber == null ? null : replenishNumber.trim();
    }

    public Integer getPaymentType() {
        return paymentType;
    }

    public void setPaymentType(Integer paymentType) {
        this.paymentType = paymentType;
    }

    public String getReplenishDescribe() {
        return replenishDescribe;
    }

    public void setReplenishDescribe(String replenishDescribe) {
        this.replenishDescribe = replenishDescribe == null ? null : replenishDescribe.trim();
    }

    public Date getDepartTime() {
        return departTime;
    }

    public void setDepartTime(Date departTime) {
        this.departTime = departTime;
    }

    public Date getPredictDeliveryTime() {
        return predictDeliveryTime;
    }

    public void setPredictDeliveryTime(Date predictDeliveryTime) {
        this.predictDeliveryTime = predictDeliveryTime;
    }

    public Date getPracticalDeliveryTime() {
        return practicalDeliveryTime;
    }

    public void setPracticalDeliveryTime(Date practicalDeliveryTime) {
        this.practicalDeliveryTime = practicalDeliveryTime;
    }

    public BigDecimal getFreightSum() {
        return freightSum;
    }

    public void setFreightSum(BigDecimal freightSum) {
        this.freightSum = freightSum;
    }

    public Integer getReplenishState() {
        return replenishState;
    }

    public void setReplenishState(Integer replenishState) {
        this.replenishState = replenishState;
    }

    public Integer getTransportState() {
        return transportState;
    }

    public void setTransportState(Integer transportState) {
        this.transportState = transportState;
    }


    @Override
    public String toString() {
        return "Replenish{" +
                "id=" + id +
                ", clientId=" + clientId +
                ", client=" + client +
                ", sendFreightId=" + sendFreightId +
                ", sendFreight=" + sendFreight +
                ", replenishNumber='" + replenishNumber + '\'' +
                ", paymentType=" + paymentType +
                ", replenishDescribe='" + replenishDescribe + '\'' +
                ", departTime=" + departTime +
                ", predictDeliveryTime=" + predictDeliveryTime +
                ", practicalDeliveryTime=" + practicalDeliveryTime +
                ", freightSum=" + freightSum +
                ", replenishState=" + replenishState +
                ", transportState=" + transportState +
                ", replenishEquips=" + replenishEquips +
                '}';
    }
}
